import pyautogui
import time
import subprocess
import ctypes


# pip install pyautogui pywin32

# 连接红米手机的蓝牙地址（需要替换为你的设备的实际蓝牙地址）
PHONE_BLUETOOTH_ADDRESS = "B8:EA:98:93:4C:71"


def connect_to_phone(address):
    """
    尝试通过蓝牙地址连接到红米手机。
    这里使用Windows的命令行工具来连接蓝牙设备。
    """
    print("正在连接到红米手机...")

    # 用 Bluetooth Command Line Tools 或直接的 PowerShell 命令进行连接
    try:
        # 使用 PowerShell 命令连接蓝牙设备
        connect_command = f'powershell -Command "Get-PnPDevice | Where-Object {{ $_.InstanceId -like \'*{address.replace(":", "-") }*\' }} | ForEach-Object {{ Start-Process -FilePath \'C:\\Windows\\System32\\fsquirt.exe\' -ArgumentList \'/connect $_.DeviceID\' }}"'
        subprocess.run(connect_command, shell=True)

        # 此处不检查连接状态，用户需手动确认设备连接
        print("请检查是否成功连接红米手机。")
        return True
    except Exception as e:
        print(f"连接失败: {e}")
        return False

# 检查手机是否连接
def check_device():
    result = subprocess.run(['adb', 'devices'], stdout=subprocess.PIPE)
    output = result.stdout.decode('utf-8')
    print("check_device")
    print(output)
    if 'Redmi' in output:
        return True
    else:
        return False

# 模拟手机点击
def click_phone(x, y):
    subprocess.run(['adb', 'shell', 'input', 'tap', str(x), str(y)])

# 模拟手机滑动
def swipe_phone(x1, y1, x2, y2, duration):
    subprocess.run(['adb', 'shell', 'input', 'swipe', str(x1), str(y1), str(x2), str(y2), str(duration)])


def swipe_up():
    """
    使用pyautogui模拟上滑操作
    """

    print("开始模拟上滑操作...")

    # 移动鼠标到屏幕中央
    pyautogui.moveTo(pyautogui.screenSize().width // 2, pyautogui.screenSize().height // 2)

    # 执行5次上滑操作
    for i in range(5):
        pyautogui.dragRel(0, -100, duration=0.2)  # 向上滑动100像素
        time.sleep(0.5)  # 每次滑动后等待0.5秒


def main():
    # 连接红米手机
    if connect_to_phone(PHONE_BLUETOOTH_ADDRESS):
        # 连接成功后，等待2秒确保稳定连接
        time.sleep(2)
        # 启动蓝牙适配器
        # ctypes.windll.user32.MessageBoxW(0, "请确保已启动蓝牙适配器，并已连接到红米手机。", "提示", 0)

        if check_device():
            print("连接成功！")
            # 执行上滑操作
            swipe_up()
        else:
            print("无法执行上滑操作，因为蓝牙连接失败。")


if __name__ == "__main__":
    main()